﻿<!DOCTYPE HTML>
<html lang="zh">
<head>
<title>InstallMouseHook - 语法 &amp; 使用 | AutoHotkey v2</title>
<meta name="description" content="The InstallMouseHook function installs or uninstalls the mouse hook." />
<meta name="ahk:equiv-v1" content="lib/_InstallMouseHook.htm" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="../static/theme.css" rel="stylesheet" type="text/css" />
<script src="../static/content.js" type="text/javascript"></script>
</head>
<body>

<h1>InstallMouseHook</h1>

<p>安装或卸载鼠标钩子.</p>
<pre class="Syntax"><span class="func">InstallMouseHook</span> <span class="optional">Install, Force</span></pre>

<h2 id="Parameters">参数</h2>
<dl>

  <dt>Install</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#boolean">布尔值</a></p>
    <p>如果省略, 则默认为 true.</p>
    <p>如果为 <strong>true</strong>, 则需要安装钩子.</p>
    <p>如果为 <strong>false</strong>, 此函数之前设置的任何需求都将被删除, 可能会卸载钩子.</p>
  </dd>

  <dt>Force</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#boolean">布尔值</a></p>
    <p>如果省略, 则默认为 false.</p>
    <p>如果为 <strong>false</strong>, 内部变量会被更新, 以表明脚本是否需要钩子, 但是如果钩子是其他目的而需要的, 可能不会有直接的变化.</p>
    <p>如果 <strong>true</strong> 和 <em>Install</em> 为 true, 钩子会被卸载和重新安装. 这具有使其优先于其他进程先前安装的钩子的效果. 如果系统由于一个无响应的程序而停止调用该钩子, 重新安装该钩子可能会使其再次工作.</p>
    <p>如果 <strong>true</strong> 和 <em>Install</em> 为 false, 那么钩子就会被卸载, 即使是其他目的需要. 如果<a href="../Hotkeys.htm">热键</a>, <a href="../Hotstrings.htm">热字串</a>或 <a href="InputHook.htm">InputHook</a> 需要钩子, 它将停止工作, 直到该钩子被重新安装. 钩子可以通过调用这个函数显式地被重新安装, 也可以作为启用或禁用热键或调用其他需要钩子的函数的副作用而自动安装.</p>
  </dd>

</dl>

<h2 id="Remarks">备注</h2>
<p>鼠标钩子监视鼠标的点击, 以便激活鼠标<a href="../Hotkeys.htm">热键</a>和<a href="../Hotstrings.htm#NoMouse">辅助热字串</a>.</p>
<p>AutoHotkey 不会无条件安装键盘和鼠标钩子, 因为它们合起来至少占用 500 KB 的内存(但如果安装了键盘钩子, 安装鼠标钩只需要大约 50 KB 的额外内存; 反之亦然). 因此, 通常只有当脚本包含一个或多个鼠标<a href="../Hotkeys.htm">热键</a>时才会安装鼠标钩子. 它也会为<a href="../Hotstrings.htm">热字串</a>安装, 但这可以通过 <a href="_Hotstring.htm">#Hotstring NoMouse</a> 禁用.</p>
<p>与之相比, InstallMouseHook 函数可以用来无条件安装鼠标钩子, 它的好处包括:</p>
<ul>
  <li><a href="KeyHistory.htm">KeyHistory</a> 可以用来监控鼠标的点击.</li>
  <li><a href="GetKeyState.htm">GetKeyState</a> 可以检索到一个按钮的物理状态.</li>
  <li><a href="../Variables.htm#TimeIdleMouse">A_TimeIdleMouse</a> 和 <a href="../Variables.htm#TimeIdlePhysical">A_TimeIdlePhysical</a> 可以正确工作(分别忽略键盘输入和人工输入).</li>
</ul>
<p>你可以通过 <a href="KeyHistory.htm">KeyHistory</a> 函数或菜单项来确定脚本是否在使用钩子. 你可以通过 <a href="ListHotkeys.htm">ListHotkeys</a> 函数或菜单项来确定哪些热键正在使用钩子.</p>

<h2 id="Related">相关</h2>
<p><a href="InstallKeybdHook.htm">InstallKeybdHook</a>, <a href="_UseHook.htm">#UseHook</a>, <a href="Hotkey.htm">Hotkey</a>, <a href="KeyHistory.htm">KeyHistory</a>, <a href="GetKeyState.htm">GetKeyState</a>, <a href="KeyWait.htm">KeyWait</a></p>

<h2 id="Examples">示例</h2>
<div class="ex" id="ExBasic">
<p><a class="ex_number" href="#ExBasic"></a> 无条件安装鼠标钩子.</p>
<pre>InstallMouseHook</pre>
</div>

</body>
</html>